from flask import Flask, request, jsonify
from flask_cors import CORS, cross_origin
import os

app = Flask(__name__)

# 定义路由和对应的处理函数
@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/api/chat', methods=['POST'])
@cross_origin()
def chat():
    data = request.get_json()  # 获取POST请求的JSON数据
    message = data.get('message', 'Hello')  # 从数据中提取消息，默认为'Hello'
    greeting = f'You said: {message}!'  # 构造问候语

    # 获取请求来源的 IP 地址
    remote_addr = request.headers.get('X-Forwarded-For', request.remote_addr)

    # 将消息和 IP 地址写入文件
    with open('chat_log.txt', 'a') as file:
        file.write(f"IP: {remote_addr}, Message: {message}\n")

    return jsonify({'greeting': greeting})  # 返回JSON响应

@app.route('/api/chat_log', methods=['GET'])
@cross_origin()
def chat_log():
    try:
        # 读取聊天记录文件的最后50行
        with open('chat_log.txt', 'r') as file:
            lines = file.readlines()
            # 如果聊天记录不足50行，则返回所有记录
            last_50_lines = lines[-50:] if len(lines) >= 50 else lines
        # 返回聊天记录的列表
        return jsonify(last_50_lines)
    except FileNotFoundError:
        # 如果文件不存在，返回空列表
        return jsonify([])

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0',threaded=True)  # 运行应用，并开启调试模式